package view.actions;

import beans.UsuarioTo;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import negocio.UsuarioManager;
import negocio.UsuarioManagerException;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import utildb.TransactionException;
import view.forms.misDatosForm;


public class MisDatosAction extends Action {
    String cBuscar;
    String cadentmp;
    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request, 
                                 HttpServletResponse response) throws IOException, 
                                                                      ServletException, 
                                                                      UsuarioManagerException,
                                                                      TransactionException {
        //      --------
        HttpSession session  = request.getSession(false);

        misDatosForm objform;
        objform = (misDatosForm) form;

        // Recuperar el código del usuario
        // en la session
        String operacion = objform.getOperacion();
        String codUser   = (String)session.getAttribute("txtUser");
        String codRol    = (String)session.getAttribute("txtCodRol");
        //
        UsuarioManager pmgUser = new UsuarioManager();
        UsuarioTo usuario;
        if (operacion.equals("misdatos")) {
            try {
                usuario = pmgUser.buscarUsuario(codUser);
                objform.setCcod_Usua(codUser);
                objform.setCnom_Usua(usuario.getCnom_Usua());
                objform.setCcla_Usua(usuario.getCcla_Usua());
                objform.setCdir_Usua(usuario.getCdir_Usua());
                objform.setCruc_Usua(usuario.getCruc_Usua());
                objform.setCmai_Usua(usuario.getCmai_Usua());
                objform.setCtip_Prio(usuario.getCtip_Prio());
                objform.setCtel_Fijo(usuario.getCtel_Fijo());
                objform.setCtel_Celu(usuario.getCtel_Celu());
                objform.setNest_Usua(usuario.getNest_Usua());
                //
                request.setAttribute("ccod_Usua", codUser);
                request.setAttribute("cnom_Usua", usuario.getCnom_Usua());
                request.setAttribute("ccla_Usua", usuario.getCcla_Usua());
                request.setAttribute("cdir_Usua", usuario.getCdir_Usua());
                request.setAttribute("cruc_Usua", usuario.getCruc_Usua());
                request.setAttribute("cmai_Usua", usuario.getCmai_Usua());
                request.setAttribute("ctip_Prio", usuario.getCtip_Prio());
                request.setAttribute("ctel_Fijo", usuario.getCtel_Fijo());
                request.setAttribute("ctel_Celu", usuario.getCtel_Celu());
                request.setAttribute("nest_Usua", usuario.getNest_Usua());
            } catch (Exception e) {
                     System.out.println(e.getMessage());
            }
        }
        if (operacion.equals("save_misdatos")) {
            usuario = new UsuarioTo();
            usuario.setCcod_Usua("DANY");
            usuario.setCnom_Usua(objform.getCnom_Usua());
            usuario.setCcla_Usua(objform.getCcla_Usua());
            usuario.setNest_Usua(objform.getNest_Usua());
            usuario.setCruc_Usua(objform.getCruc_Usua());
            usuario.setCdir_Usua(objform.getCdir_Usua());
            usuario.setCmai_Usua(objform.getCmai_Usua());
            usuario.setCtip_Prio(objform.getCtip_Prio());
            usuario.setCrol_Usua(codRol);
            usuario.setCtel_Fijo(objform.getCtel_Fijo());
            usuario.setCtel_Celu(objform.getCtel_Celu());
            usuario.setNest_Usua(objform.getNest_Usua());
            //
            try {
                pmgUser.registrarUsuario(usuario);
                // Grabar en disco el archivo x
            } catch (Exception e) {
                     System.out.println(e.getMessage());
            }
        }
        return mapping.findForward( "success");
    }
}
